Distributed computer system information can be complex to manage. Some companies, therefore, choose to have production and testing environments. Should a bug be discovered in the production environment, responsible engineers may try to replicate the bug in the testing environment. However, as these systems may involve large computing environments, an engineer may have to spend time to back up and restore the production computing environment using another system in order to track down the bug. In some cases, each service and its associated data may be individually backed up from within the distributed computer system.
Properly backing up information becomes particularly important when services and data are not synchronized correctly. If expected data is not fully propagated across each backup, service errors may occur. For example, an engineer may individually back up each service while the system is operating in order to minimize system downtime. However, any new information received between the first service backup and the last service backup may not be present in the first service backup. If a distributed computer system is restored from these backups that include a timing difference, errors may occur. Because of the timing difference, a user may not be populated in a user registration service that was backed up first, but may have purchases recorded on a fulfillment server that was backed up last. An attempt to recall user information related to a purchase on the fulfillment server may fail due to the unexpected information mismatch. While various techniques have been employed to effectively backup and restore distributed computer systems, due to the complexity of the tasks, the employed techniques are of varied success.